const app = getApp();
var utils = require("../../utils/utils.js");
var server = require("../../utils/server.js");
var config = require("../../config.js");
var apis = require("../../utils/api.js");

Page({

  /**
   * 页面的初始数据
   */
  data: {
    avatarUrl: '/image/defulatAvatar.png',
    companyList: [],
    mobile: '',
    entName: '',
    fill: false,
    name: '',
    cardNo: '',
    check1: false,
    check2: false,
    check3: false,
    index: 0,
    theme: wx.getSystemInfoSync().theme
  },

  setName(e) {
    let _this = this;
    let name = e.detail.value
    _this.setData({
      name: name,
      check1: name ? true : false
    })
    let fill = (_this.data.check1 && _this.data.check2 && _this.data.check3) ? true : false
    _this.setData({
      fill: fill
    })
  },

  //手机号
  setMobile(e) {
    let _this = this;
    let mobile = e.detail.value
    _this.setData({
      mobile: mobile,
      check2: mobile ? true : false
    })
    let fill = (_this.data.check1 && _this.data.check2) ? true : false
    _this.setData({
      fill: fill
    })
  },

  // 身份证号
  setCardNo(e) {
    let _this = this;
    let cardNo = e.detail.value
    _this.setData({
      cardNo: cardNo
      // check2: cardNo ? true : false
    })
    // let fill = (_this.data.check1 && _this.data.check2 && _this.data.check3) ? true : false
    // _this.setData({
    //   fill: fill
    // })
  },

  //所属企业
  setCompany(e) {
    let _this = this;
    let index = e.detail.value;
    _this.setData({
      entName: _this.data.companyList[index],
      index: index
      // check3: _this.data.companyList[index] == '请输入' ? false : true
    })
    // let fill = (_this.data.check1 && _this.data.check2 && _this.data.check3) ? true : false
    // _this.setData({
    //   fill: fill
    // })
  },

  // 验证手机号的函数
  validatePhoneNumber: function (phoneNumber) {
    const phoneRegex = /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;
    const isValid = phoneRegex.test(phoneNumber);

    return isValid; // 可以选择返回，方便其他地方调用
  },

  noAuth() {
    wx.navigateBack({
      delta: 1,
    })
  },

  //保存个人信息
  auth() {
    var _this = this;
    let mobile = _this.data.mobile;
    let name = _this.data.name;
    let info = _this.data.companyList[_this.data.index]
    let cardNo = _this.data.cardNo;
    if (!(_this.data.check1 && _this.data.check2)) {
      utils.showToast('请完成信息填写')
      return
    }
    if (!_this.validatePhoneNumber(mobile)) {
      utils.showToast('请您输入正确的手机号')
      return
    }
    // if (!_this.validateIdCard(cardNo)) {
    //   utils.showToast('请您输入正确的证件号')
    //   return
    // }
    var prams = {
      entId: info.id,
      contactId: info.contactId,
      entName: info.entName,
      entCertNo: info.entCertNo,
      entAddress: info.entAddress,
      name: name,
      mobile: mobile,
      cardNo: cardNo,
      userType: app.globalData.userType

    }
    var api = apis.bind;
    server.postRequest(config.xburl, api, prams,
      function (res) {
        let params = {
          type: 'UserRegister',
          tip: '企业认证申请已提交，请等待审核！'
        }
        wx.navigateTo({
          url: '/pages/Result/Result?value=' + JSON.stringify(params),
        })
      },
      function (err) {
        utils.showToast(err)
      })
  },

  /**
   * 身份证号码验证函数
   * @param {string} idCard - 待验证的身份证号码
   * @returns {boolean} - 验证结果
   */
  validateIdCard(idCard) {
    // 15位和18位身份证号码的正则表达式
    const regex = /(^\d{15}$)|(^\d{17}(\d|X|x)$)/;

    // 基本格式验证
    if (!regex.test(idCard)) {
      return false;
    }

    // 18位身份证需要验证最后一位校验位
    if (idCard.length === 18) {
      const idCardArray = idCard.split('');
      // 身份证校验位计算因子
      const factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
      // 校验位对应值
      const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
      let sum = 0;

      for (let i = 0; i < 17; i++) {
        sum += parseInt(idCardArray[i]) * factor[i];
      }

      const lastChar = idCardArray[17].toUpperCase();
      return parity[sum % 11] === lastChar;
    }

    // 15位身份证验证（年份前缀补全为19）
    if (idCard.length === 15) {
      const year = idCard.substr(6, 2);
      const month = idCard.substr(8, 2);
      const day = idCard.substr(10, 2);
      // 简单验证日期有效性
      return !isNaN(parseInt(year)) && !isNaN(parseInt(month)) && !isNaN(parseInt(day));
    }

    return true;
  },

  queryCompanyList() {
    var _this = this;
    var prams = {
      pageNo: 1,
      pageSize: 100
    }
    var api = apis.enterprisePage;
    server.getRequest(config.xburl, api, prams,
      function (res) {
        _this.setData({
          entName: res.data.list[0],
          companyList: res.data.list
        })
      },
      function (err) {
        utils.showToast(err)
      })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.queryCompanyList()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  onChooseAvatar(e) {
    const {
      avatarUrl
    } = e.detail
    this.setData({
      avatarUrl,
    })
  }

})